package cn.tangwei.basic.mapper;

import cn.tangwei.basic.query.BaseQuery;
import java.util.List;

/**
 * 抽取公共的mapper层代码
 *  基本的CRUD 分页加高级查询 批量删除
 * @param <T>
 */
public interface BaseMapper<T> {
    // 添加一条数据
    void save(T t);

    // 修改一条数据
    void update(T t);

    // 移除一条数据
    void remove(Long id);

    // 加载一条数据
    T queryById(Long id);

    // 加载全部数据
    List<T> queryAll();

    // 加载总条数
    Integer queryCount(BaseQuery query);

    // 加载当前页数据
    List<T> queryData(BaseQuery query);

    // 批量移除数据
    void patchRemove(List<Long> ids);
}
